Inhaltsverzeichnis
Sprachelemente von JavaScript
Funktionen
Methoden und Standardfunktionen
Objekte und Eigenschaften
JavaScript-Standardobjekte
Variablen und Werte
Steuerzeichen und besondere Notationen
Ausdrücke und Operatoren
Kontrollstrukturen
Reservierte Wörter
Verschachtelung und Klammerung
Event-Handler
Funktionen
Eine Funktion ist ein "Block" von logisch zusammengehörigen JavaScript-Anweisungen. Sie können eigene Funktionen innerhalb der HTML-Tags <script language="JavaScript"> und </script> definieren. An erlaubten Stellen, z.B. innerhalb der einleitenden HTML-Tags <body...> und <a href...>, oder in einem Formular-Tag wie <input...>, können Sie eine solche selbst definierte Funktion dann aufrufen. Die Definition einer Funktion muß in der gleichen HTML-Datei (in der Regel im Dateikopf) stehen wie die Aufrufe der Funktion.
Funktion definieren
Bei der Definition innerhalb von <script language="JavaScript"> und </script> hat eine Funktion folgenden Aufbau (Schema):
function FunktionsName(Parameter,...)
{
JavaScript-Anweisung;
weitere JavaScript-Anweisungen...
}
Beispiel
function BruttoBetrag(NettoBetrag, Prozentsatz)
{
var Ergebnis = NettoBetrag * (1 + (Prozentsatz / 100));
return Ergebnis;
}
Mit dem Schlüsselwort function leiten Sie die Definition einer Funktion ein. Dahinter folgt, durch ein Leerzeichen getrennt, ein frei wählbarer Funktionsname, im Beispiel: BruttoBetrag. Vergeben Sie einen Funktionsnamen, der das, was die Funktion leistet, ungefähr beschreibt. Der Name darf keine Leerzeichen und keine deutschen Umlaute enthalten. Als Sonderzeichen ist nur der Unterstrich "_" erlaubt. Der Name sollte nicht länger als 32 Zeichen sein. Achten Sie darauf, daß Sie als Funktionsnamen kein
reserviertes Wort von JavaScript wählen. Groß- und Kleinschreibung werden unterschieden, d.h. beispiel und Beispiel sind nicht das Gleiche!
Unmittelbar hinter dem Funktionsnamen folgt eine öffnende Klammer. Wenn die Funktion keine Parameter erwarten soll, notieren Sie dahinter sofort wieder eine schließende Klammer. Wenn die Funktion Parameter übergeben bekommen soll, notieren Sie innerhalb der Klammer die Namen der Parameter. Die Namen der Parameter sind frei wählbar. Bei den Parameternamen gelten die gleichen Regeln wie beim Funktionsnamen. Mehrere Parameter werden durch Kommata voneinander getrennt. Im obigen Beispiel erwartet die Funktion BruttoBetrag die beiden Parameter NettoBetrag und Prozentsatz
Der gesamte Inhalt der Funktion wird in geschweifte Klammern { und } eingeschlossen. Diese Klammern dürfen niemals fehlen!
Alle Anweisungen innerhalb einer Funktion sollten mit einem Strichpunkt abgeschlossen werden.
Die Anweisungen innerhalb der Funktion können sehr unterschiedlicher Natur sein. Da können Sie z.B. Objekteigenschaften ändern, übergebene Parameter verarbeiten und ändern, Berechnungen anstellen usw. Sie können innerhalb von Funktionen auch andere Funktionen oder
Methoden und Standardfunktionen von JavaScript aufrufen. Welche Anweisungen innerhalb einer Funktion stehen, hängt davon ab, was die Funktion leisten soll. Im obigen Beispiel wird aus dem übergebenen Nettobetrag und einem Prozentsatz ein Bruttobetrag errechnet, z.B. für Mehrwertsteuer. Das Ergebnis wird
zurückgegeben.
Funktion aufrufen
Voraussetzung für einen Funktionsaufruf ist, daß die Funktion definiert wurde. Definierte Funktionen können Sie an erlaubten Stellen innerhalb einer HTML-Datei aufrufen. Der Aufruf hat dabei folgendes Schema:
FunktionsName(Parameter,...)
Beispiel im Körper einer HTML-Datei
<script> <!--
var Endbetrag = BruttoBetrag(4700,15);
document.write("DM 4700 + 15% MwSt. = " + Endbetrag + " DM");
//--> </script>
Die Funktion rufen Sie mit ihrem Funktionsnamen auf. Dahinter folgt die öffnende Klammer. Wenn die Funktion keine Parameter erwartet, notieren Sie hinter der öffnenden gleich eine schließende Klammer. Wenn die Funktion Parameter erwartet, müssen Sie für jeden Parameter einen erlaubten Wert übergeben. Im Beispiel wird die zuvor definierte Funktion BruttoBetrag(...) aufgerufen. Diese Funktion erwartet als Parameter einen Nettobetrag und einen Prozentwert. Die beiden Parameter werden ihr übergeben (Nettobetrag 4700, Prozentsatz 15). Das von der Funktion zurückgegebene Ergebnis wird in der
Variablen Endbetrag gespeichert. In der folgenden Anweisung wird mit Hilfe der JavaScript-Methode document.write(...) das Ergebnis zusammen mit einem sinnvollen Text auf den Bildschirm geschrieben.
Beachten Sie bei der Parameterübergabe an Funktionen und Methoden, daß Zahlen wie 4700 oder Variablen wie Endbetrag ohne weitere Zeichen übergeben werden, Zeichenketten wie " DM " dagegen in Anführungszeichen gesetzt werden.
Rückgabewert einer Funktion
Eine Funktion kann einen Wert zurückgeben, den sie aufgrund ihrer internen Programmprozeduren ermittelt hat. Beim Aufruf einer Funktion können Sie den Rückgabewert in einer
Variablen auffangen und speichern.
Beispiel
function Quadrat(x)
{
return x * x;
}
function SchreibeQuadrate()
{
for (var i = 1; i < 101; i++)
{
var Wert = Quadrat(i);
document.write("<br>Das Quadrat von " + i + " ist " + Wert);
}
}
Im Beispiel werden zwei Funktionen definiert. Die erste Funktion Quadrat(...) erhält als Parameter einen Wert x. Aus diesem Wert errechnet die Funktion das Quadrat und gibt es zurück. Die Rückgabe erfolgt mit Hilfe des JavaScript Schlüsselwortes return. Die zweite Funktion SchreibeQuadrate() enthält eine Schleife, die von 1 bis 100 zählt. Innerhalb dieser Schleife wird bei jedem Durchgang die erste Funktion Quadrat mit dem aktuellen Stand des Schleifenzählers i aufgerufen. Das jeweilige Ergebnis wird in der
Variablen Wert gespeichert. In der folgenden Anweisung wird mit Hilfe der JavaScript-Methode document.write(...) das Ergebnis zusammen mit einem sinnvollen Text am Bildschirm ausgegeben. Beachten Sie, daß innerhalb des Textes, der mit document.write ausgegeben wird, auch HTML-Tags vorkommen dürfen - im Beispiel das Tag <br> (Zeilenumbruch). Im Beispiel bewirkt dies, daß jedes der insgesamt 100 Ergebnisse in eine eigene Zeile geschrieben wird.
Seitenanfang
Methoden und Standardfunktionen
Im Sprachumfang von JavaScript sind viele Methoden und Standardfunktionen enthalten. Methoden sind Funktionen, die sich auf ein bestimmtes
JavaScript-Standardobjekt oder ein selbst definiertes
Objekt beziehen. Daneben gibt es auch noch einige
objektunabhängige Funktionen.
Aufruf einer Methode (Beispiel)
document.write("<center>Willkommen auf unseren Seiten!<br> Hier geht der Punk ab...</center>")
Im Beispiel wird die Methode document.write aufgerufen. Dabei ist write eine Standardfunktion von JavaScript, die sich auf das JavaScript-Standardobjekt document bezieht. Zuerst wird der Objektname notiert, und dahinter, durch einen Punkt getrennt, der Funktionsname.
Mit document ist immer der Inhalt des gerade aktuellen Fensters des WWW-Browsers gemeint. Die Methode document.write schreibt einen beliebigen Text in das aktuell angezeigte Fenster. Als Parameter erwartet diese Methode eine Zeichenkette, die am Bildschirm ausgegeben werden soll. Der Text wird an der Stelle in das angezeigte Dokument eingefügt, an der der Methodenaufruf innerhalb der HTML-Datei steht.
Aufruf einer Funktion (Beispiel)
FarbwertRot = parseInt("51",16)
Im Beispiel wird die JavaScript-Standardfunktion parseInt aufgerufen. Diese Funktion errechnet aus einer als Zeichenkette angegebenen Zahl und einer "Basis" einen numerischen Wert aufgrund der Basis. Im Beispiel wird die Zeichenkette "51" übergeben und als Basis 16 (das ist die Basis für Hexadezimalwerte, wie sie z.B. bei HTML-Farbdefinitionen benötigt wird.
JavaScript-Standardfunktionen werden genauso aufgerufen wie selbst definierte Funktionen. Der Unterschied ist nur, daß JavaScript-Standardfunktionen an keiner Stelle definiert werden müssen und überall zur Verfügung stehen.
Eine Übersicht von Methoden und Standardfunktionen in JavaScript finden Sie im Kapitel
JavaScript-Kurzreferenz.
Seitenanfang
Objekte und Eigenschaften
JavaScript gehört zu den objektorientierten Programmiersprachen. Objekte sind Daten und Datenstrukturen mit Eigenschaften. In JavaScript können Sie eigene Objekte anlegen, deren Eigenschaften festlegen und mit diesen Eigenschaften im Programmverlauf arbeiten. Außerdem stellt Ihnen JavaScript wichtige
Standardobjekte zur Verfügung.
Farben - Beispiel eines eigenen Objekts
Um ein eigenes Objekt anzulegen, sind zwei Schritte nötig. Zuerst müssen Sie das Objekt und seine Eigenschaften benennen. Im zweiten Schritt können Sie dann Variablen definieren, die dem angelegten Objekt Eigenschaftswerte zuweist. Über die Variablen können Sie anschließend einzelne Eigenschaften des Objekts ansprechen und mit geeigneten Anweisungen weiterverarbeiten.
Komplettbeispiel einer HTML-Datei
<html> <head> <title>Beispiel mit JavaScript</title> <script language="JavaScript"> <!--
function Farbe(Farbwert_R, Farbwert_G, Farbwert_B)
{
this.Farbwert_R = Farbwert_R;
this.Farbwert_G = Farbwert_G;
this.Farbwert_B = Farbwert_B;
}
function TestObjekt()
{
Test = new Farbe("33","99","C0");
alert("Der Rotwert meiner Farbe ist Hexadezimal " + Test.Farbwert_R);
}
// --> </script> </head> <body onload="TestObjekt()"> </body> </html>
Um ein neues Objekt und seine Eigenschaften anzulegen, müssen Sie innerhalb der HTML-Tags <script language=""JavaScript"< und </script> eine eigene
Funktion definieren, die so aussieht wie im Beispiel die Funktion Farbe(...). Der Name, den Sie der Funktion geben (im Beispiel der Name Farbe) ist zugleich der Name des Objekts, das Sie mit dieser Funktion anlegen. Als Parameter, die die Funktion erwartet, notieren Sie die Eigenschaften, die Ihr Objekt haben soll. Die Parameternamen sind zugleich die Namen der Objekteigenschaften. Im Beispiel sind das die Eigenschaften Farbwert_R, Farbwert_G und Farbwert_B, denn es soll ein Objekt angelegt werden, das Rot-, Grün- und Blauwert einer Farbe speichern kann. Innerhalb der Funktion notieren Sie alle Anweisungen so wie im Beispiel: für jede Eigenschaft, die bei den Funktionsparametern festgelegt wurde, notieren Sie eine Anweisung, beginnend mit dem JavaScript-Schlüsselwort this, gefolgt von einem Punkt und dem Parameternamen. Dahinter notieren Sie ein Istgleichzeichen, und hinter dem Istgleichzeichen nochmals den Parameternamen. Am Ende jeder Anweisung muß ein Strichpunkt stehen.
Nachdem das Objekt angelegt ist, können Sie an anderen Stellen innerhalb Ihres JavaScripts Instanzen dieses Objekt definieren. Dies geschieht mit Hilfe einer
Variablen und dem JavaScript-Schlüsselwort new. Im Beispiel wird zu Testzwecken eine zweite Funktion TestObjekt() definiert. Darin wird zunächst eine Variable Test angelegt. Diese Variable soll Daten des angelegten Objekts Farbe enthalten. Dies geschieht durch ein Istgleichzeichen hinter dem Variablennamen. Dahinter folgt das JavaScript-Schlüsselwort new und dahinter, durch ein Leerzeichen getrennt, der Name der Funktion, mit der das gleichnamige Objekt angelegt wurde, im Beispiel Farbe. Als Parameter werden dieser Funktion irgendwelche brauchbaren Werte übergeben, im Beispiel "33", "99" und "C0" (typische hexadezimale Farbwerte, wie sie in HTML zum Einsatz kommen).
Ab diesem Moment können Sie mit der Variablen einzelne Objekteigenschaften ansprechen und weiterverarbeiten. Das Schema ist dabei stets Variable.Objekteigenschaft. Im Beispiel wird einfach mit Hilfe der alert-Funktion der Inhalt von Test.Farbwert_R am Bildschirm ausgegeben.
Seitenanfang
JavaScript-Standardobjekte
JavaScript stellt Ihnen eine Reihe von Objekten zur Verfügung, die im Zusammenhang mit WWW-Seiten wichtig sind. Mit diesen Objekten können Sie in Ihren JavaScript-Programmen arbeiten. Im folgenden wird ein JavaScript-Objekt zur Erläuterung näher vorgestellt. Eine Übersicht von Objekten und ihren Eigenschaften finden Sie im Kapitel
JavaScript-Kurzreferenz.
Date - Beispiel eines JavaScript-Objekts
Das JavaScript-Objekt Date ist die "Ober-Instanz" für alles, was Sie in JavaScript mit Datums- und Zeitberechnung machen können. Auf Basis des Date-Objekts können Sie z.B. das aktuelle Datum und die aktuelle Uhrzeit ermitteln, um diese beispielsweise am Bildschirm auszugeben. Auch komplexere Berechnungen, wie etwa die Ermittlung von Feiertagen, können Sie auf der Basis dieses Objekts durchführen - vorausgesetzt, Sie kennen die entsprechenden Algorithmen.
Komplettbeispiel einer HTML-Datei
<html> <head> <title>Beispiel mit JavaScript</title> <script language="JavaScript"> <!--
function SagDatumUndZeit()
{
var Jetzt = new Date();
var Tag = Jetzt.getDate();
var Monat = Jetzt.getMonth();
var Jahr = Jetzt.getYear();
var Stunden = Jetzt.getHours();
var Minuten = Jetzt.getMinutes();
var NachVoll = ((Minuten < 10) ? ":0" : ":");
alert("Guten Tag!\nHeute ist der "
+ Tag + "." + Monat + "." + Jahr + "\nEs ist jetzt " + Stunden + NachVoll + Minuten + " Uhr");
}
// --> </script> </head> <body onload="SagDatumUndZeit()"> </body> </html>
Im Beispiel wird mit Hilfe des in JavaScript eingebauten Date-Objekts das aktuelle Datum und die aktuelle Uhrzeit ermittelt. Mit der alert-Funktion werden die ermittelten Einzelwerte zusammen mit einem Begüßungstext sauber formatiert am Bildschirm ausgegeben.
Zuerst muß eine dazu neue
Variable angelegt werden. Im Beispiel ist dies die Variable Jetzt. Diese Variable soll auf Daten des Date-Objekts zugreifen können. Dies geschieht durch ein Istgleichzeichen hinter dem Variablennamen. Dahinter folgt das JavaScript-Schl¸sselwort new und dahinter, durch
ein Leerzeichen getrennt, der Aufruf der Standardfunktion Date() zum Erzeugen eines neuen Date-Objekts.
Nach dem Aufruf stehen in Jetzt "theoretisch" alle Einzelheiten des aktuellen Datums und der aktuellen Zeit. Um die einzelnen Objekteigenschaften von Date, also Tag, Monat, Jahr usw. anzusprechen, müssen Sie entsprechende
Methoden des Standardobjekts Date aufrufen. Diese Methoden, z.B. getDate() oder getHours(), haben als Rückgabewert jeweils einen Datums/Uhrzeit-Bestandteil. So liefert getDate() beispielsweise den aktuellen Tag des Monats und getHours() die aktuelle Stundenzahl des Tages. Im Beispiel wird für jeden der benötigten Bestandteile eine Variable definiert. In der Variablen Tag wird beispielsweise durch Aufruf von Jetzt.getDate() der aktuelle Tag des Monats gespeichert.
Die Anweisung im Beispiel, die mit NachVoll ... beginnt, kann an dieser Stelle nicht näher erläutert werden. Die Anweisung ist eine Vorbereitung zur sauberen Formatierung der Uhrzeit.
Seitenanfang
Variablen und Werte
Variablen sind Speicherbereiche, in denen bestimmte Daten gespeichert werden. Der Inhalt dieser Speicherbereiche kann durch Programmprozeduren verändert werden.
Beispiele
var test;
var x = 1;
var y = Math.sin(x);
x += y;
var Text = "Der Sinus von 1 ist: "
Variablen können mit Hilfe des JavaScript-Schlüsselworts var definiert werden. Dieses Schlüsselwort ist zwar nicht zwingend notwendig, macht den Quellcode aber lesbarer, da es signalisiert, daß die betreffende Anweisung eine Variablendefinition ist.
Variablen können einfach ohne weitere Wertzuweisung definiert werden, wie in den Beispielen die Variable test. Variablen können aber auch definiert werden, indem ihnen gleich zu Beginn ein Wert zugewiesen wird. Dabei notieren Sie hinter dem Variablennamen ein Istgleichzeichen und dahinter den Wert, den Sie der Variablen zuweisen wollen. Im Beispiel werden zwei Variablen auf diese Weise definiert: die Variablen x und y. Die Variable x bekommt einfach nur den Wert 1 zugewiesen. Bei der Variablen y wird eine
Methode von JavaScript aufgerufen, die den zuzuweisenden Wert erst errechnet. Es handelt sich um eine Methode, die den mathematischen Sinus einer Zahl ermittelt. Im Beispiel wird dieser Methode die zuvor definierte Variable x übergeben. Da x den aktuellen Wert 1 hat, wird y also der Sinus von 1 zugewiesen.
Jede Variablendefinition wird mit einem Strichpunkt abgeschlossen.
Es gibt numerische Variablen und Variablen für Zeichen bzw. Zeichenketten. x und y sind numerische Variablen. Die im Beispiel definierte Variable Text ist eine Zeichenvariable. Dies ist daran erkennbar, daß der ihr zugewiesene Wert, ein Text "Der Sinus von 1 ist: ", in Anführungszeichen gesetzt wird. Sie könnten z.B. eine Variable Nummer = 1; und eine Variable Zeichen = "1" definieren. Der Unterschied ist, daß Sie mit der Variablen Nummer Rechenoperationen anstellen können, mit der Variablen Zeichen nicht.
Namenskonventionen
Wählen Sie für jede Variable einen Namen, der Ihnen auch nach vier Wochen noch signalisiert, welchen Zweck die Variable hat. Der Name darf keine Leerzeichen und keine deutschen Umlaute enthalten. Als Sonderzeichen ist nur der Unterstrich "_" erlaubt. Der Name sollte nicht länger als 32 Zeichen sein. Achten Sie darauf, daß Sie als Variablennamen kein
reserviertes Wort von JavaScript wählen. Groß- und Kleinschreibung werden unterschieden, d.h. beispiel und Beispiel sind nicht das Gleiche!
Variablen ändern ihre Werte
Noch eine Bemerkung dazu, wie Variablen ihren Wert ändern: im obigen Beispiel finden Sie die Zeile x += y;. Dies ist keine Variablendefinition, da x zu dem Zeitpunkt bereits existiert und den aktuellen Wert 1 hat. Die Zeile x += y; wurde nur in das Beispiel aufgenommen, um zu zeigen, wie eine Variable ihren aktuellen Wert ändern kann. In der genannten Zeile wird x um den Wert von y erhöht. Da y zum aktuellen Zeitpunkt den Wert "Sinus von 1" hat, erhält x durch die kleine Rechenoperation also den neuen Wert "1 + Sinus von 1".
Wertänderungen von Variablen sind das A & O bei der Programmierung. Sie werden nur dann erfolgreich eigene Programme schreiben können, wenn Sie jederzeit den Überblick haben, was in einer Variablen an einem bestimmten Punkt des Programmablaufs steht. Besonders, wenn Sie mit
Kontrollstrukturen arbeiten, werden Sie schnell feststellen, wie leicht der Überblick über den aktuellen Zustand einer Variablen verloren gehen kann.
Variablen von JavaScript sind nicht so streng "getypt" wie in vielen anderen Programmiersprachen. Außer der Unterscheidung von numerischen und nicht-numerischen Variablen gibt es keine Unterscheidung. Kommazahlen und Ganzzahlen benötigen keine unterschiedlichen Typen. Der Inhalt von numerischen Variablen kann ohne vorherige Konvertierung in Zeichenketten auf den Bildschirm oder in Meldungsfenster geschrieben werden.
Seitenanfang
Steuerzeichen und besondere Notationen
In JavaScript gibt es spezielle Zeichenfolgen und Notationsmöglichkeiten.
Steuerzeichen bei Zeichenketten
Bei Zeichenkettenvariablen gibt es die Möglichkeit, Steuerzeichen in den Variablenwert einzufügen.
Beispiele
var Variable1 = "Hier erfolgt ein\nZeilenumbruch";
var Variable2 = "Hier erfolgt ein\fWagenrücklauf";
var Variable3 = "Hier erfolgt ein\bBackspace";
var Variable4 = "Hier erfolgt ein\rDOS-Extra-Zeilenumbruch";
var Variable5 = "Hier erfolgt ein\tTabulator";
var Variable6 = "Hier erfolgt ein\"Anführungszeichen";
Steuerzeichen dieser Art werden durch das Zeichen \ eingeleitet. Dahinter folgt ein Buchstabe, der das Steuerzeichen markiert.
Das Steuerzeichen \n ist z.B. in alert-Meldungen sinnvoll, um innerhalb des auszugebenden Textes einen Zeilenumbruch einzufügen.
Das Steuerzeichen \t ist z.B. sinnvoll, um etwa innerhalb einer alert-Meldung tabellarische Information auszugeben.
Mit Hilfe der Steuerzeichen \b und \f können sie z.B. in Texten, die Sie in der Statuszeile des WWW-Browsers anzeigen wollen, reizvolle Effekte erzeugen.
Das Steuerzeichen \r sollten Sie zusätzlich zu dem Steuerzeichen \n notieren, wenn \n alleine nicht funktioniert.
Das Steuerzeichen \" müssen Sie notieren, wenn Sie innerhalb einer Zeichenkette ein Anführungszeichen verwenden möchten.
Notation numerischer Werte
Sie können Zahlen ganz normal notieren. Beachten Sie dabei nur, daß bei Kommazahlen anstelle eines Kommas ein Punkt notiert werden muß. So wird die Zahl Pi beispielsweise als 3.1415 notiert. Für sehr hohe und sehr niedrige Zahlen und für komplexe Kommazahlen gibt es daneben aber noch andere Notationsmöglichkeiten.
Beispiele
1E1
1.2345E4
2e-3
Mit e oder E bestimmen Sie die Anzahl Nullen, die hinter der Zahl vor dem e bzw. E stehen.
Die erste Zahl im Beispiel, 1E1, ist eine 1 mit einer 0 dahinter, also 10.
Die zweite Zahl im Beispiel, 1.2345E4, ist eine andere Schreibweise für 12345. Der Dezimalpunkt wird also einfach um so viele Stellen nach rechts verschoben, wie hinter dem E-Zeichen angegeben.
Die dritte Zahl im Beispiel, 2e-3, ist eine andere Schreibweise für 0.002. Der Dezimalpunkt wird also einfach um so viele Stellen nach links verschoben, wie hinter dem E-Zeichen angegeben. Diese umgekehrte Richtung wird durch das Minuszeichen bewirkt, daß hinter dem e folgt.
Seitenanfang
Ausdrücke und Operatoren
Ausdrücke und Operatoren brauchen Sie bei Zuweisungen, bei Vergleichen und bei numerischen Berechnungen.
Zuweisungsoperator
Der Zuweisungsoperator ist ein Istgleichzeichen.
Beispiel
SinnDesLebens = 42;
Vergleichsoperatoren
Vergleichsoperatoren brauchen Sie, wenn Sie zwei Werte vergleichen wollen, z.B. den aktuellen Inhalt einer
Variablen mit einem fixen Wert.
Beispiele
if(SinnDesLebens == 42) return 1;
if(SinnDesLebens != 42) return 0;
if(SinnDesLebens > 42) return 0;
if(SinnDesLebens < 42) return 0;
if(Alter >= 18) alert("SIE duerfen das hier sehen!");
if(Alter <= 17) alert("SIE duerfen das hier NICHT sehen!");
Um abzufragen, ob zwei Werte gleich sind, notieren Sie zwei Istgleichzeichen == nebeneinander.
Um abzufragen, ob zwei Werte unterschiedlich sind, notieren Sie zwischen beiden Werten die Zeichen !=.
Um abzufragen, ob ein Wert größer oder gleich ist als ein anderer, notieren Sie die Zeichen >=.
Um abzufragen, ob ein Wert in jedem Fall größer ist als ein anderer, notieren Sie die Zeichen >.
Um abzufragen, ob ein Wert kleiner oder gleich ist als ein anderer, notieren Sie die Zeichen <=.
Um abzufragen, ob ein Wert in jedem Fall kleiner ist als ein anderer, notieren Sie die Zeichen <.
Nähere Information zu der If-Abfrage erhalten Sie im Abschnitt über
Kontrollstrukturen.
Um mit numerischen Werten Berechnungen durchzuführen, brauchen Sie Berechnungsoperatoren.
Beispiele
var Zwei = 1 + 1;
var GarNix = 1 - 1;
var AuchNix = 81 / 3 - 27;
var WenigerAlsNix = 81 / (3 - 27);
var SinnDesLebens = 6 * 7;
var MachtAuchSinn = 84 / 2;
var ZufallswertZw1Und60 = jetzt.getTime() % 60;
Mathematische Operatoren notieren Sie mit den dafür üblichen Zeichen. Mit + notieren Sie eine Addition, mit - eine Subtraktion, mit * eine Multiplikation, mit / eine Division. Eine Besonderheit stellt der Operator % dar. Damit wird eine sogenannte Modulo-Division durchgeführt. Bei einer Modulo-Division werden zwei Werte dividiert. Das Ergebnis ist jedoch im Gegensatz zur normalen Division nur der Restwert der Division. Wenn Sie z.B. 13 % 5 notieren, erhalten Sie als Ergebnis 3, weil 13 geteilt durch 5 gleich 2 Rest 3 ergibt. Diese 3 ist es, die als Ergebnis einer Modulo-Division herauskommt.
Sie können mehrere Operationen in Reihe notieren. Dabei gilt die übliche "Punkt-vor-Strich-Regel". Wenn Sie eine andere Regel erzwingen wollen, müssen Sie Klammern verwenden, so wie im vierten der obigen Beispiele.
Inkrementations- und Dekrementations-Operatoren
Inkrementation bedeutet "Hochzählen", Dekrementation "Herunterzählen". Das Hoch- und Herunterzählen von Variablenwerten ist vor allem innerhalb von Schleifen üblich. Mehr über die in den folgenden Beispielen verwendeten for- und while-Schleifen erfahren Sie im Abschnitt über
Kontrollstrukturen.
Beispiele
var Zaehler = 0; var i = 42; var k = 1;
while(Zaehler <= 10)
{ ++i; *=k; ++Zaehler; }
var Zaehler = 100; var i = 5000; var k = 123456; var x = 654321;
while(Zaehler > 0)
{ --i; /=k; %=x; --Zaehler; }
Inkrementation, also Hochzählen, können Sie mit den Grundrechenarten Addition und Multiplikation durchführen, Dekrementation, also Herunterzählen, mit den Grundrechenarten Subtraktion und Division. Additions-Inkrementation wird mit ++ notiert, Multiplikations-Inkrementation mit *=. Subtraktions-Dekrementation wird mit -- notiert, Divisions-Inkrementation mit /=. Mit %= können Sie auch Modulo-Divisionen hoch- bzw. herunterzählen.
Logische Operatoren
Logische Operatoren brauchen Sie, wenn Sie komplexere Bedingungen für
Kontrollstrukturen formulieren wollen.
Beispiele
if(PLZ >= 80000 && PLZ <= 82000)
alert("Sie wohnen wohl in Muenchen oder Umgebung!")
if(x > 100 || y == 0)
break;
Mit dem logischen Operator && verknüpfen Sie zwei oder mehrere Bedingungen durch "und", d.h. beide bzw. alle Bedingungen müssen erfüllt sein, damit die gesamte Bedingung erfüllt ist.
Mit dem logischen Operator || verknüpfen Sie zwei oder mehrere Bedingungen inklusiv durch "oder", d.h. es genügt, wenn eine der Bedingungen erfüllt ist, damit die gesamte Bedingung erfüllt ist.
Bit-Operatoren
Bit-Operatoren sind nur etwas für Profis. Um Bit-Operatoren richtig einzusetzen, müssen Sie viel von computer-internen Speichervorgängen verstehen. Deshalb werden die Bit-Operatoren hier nur kurz erwähnt.
>> verschiebt Bits nach rechts
<< verschiebt Bits nach links
& definiert in einer Bitmaske eine Und-Bedingung
| definiert in einer Bitmaske eine inklusive Oder-Bedingung
^ definiert in einer Bitmaske eine exklusive Oder-Bedingung
Mit einem einfachen Pluszeichen + können Sie eine Zeichenkette an eine andere anhängen.
Beispiel
var Vorname = "Stefan " var Zuname = "Muenz" var Name = Vorname + Zuname + ", der Autor dieses Dokuments"
Sie können sowohl Zeichenkettenvariablen als auch direkte Zeichenkettenangaben aneinanderhängen.
Seitenanfang
Kontrollstrukturen
Kontrollstrukturen sind das A und O der Programmierung. Erst mit Hilfe von Kontrollstrukturen können Sie etwas anderes als einfache Zuweisungen und Funktions- oder Methodenaufrufe programmieren. So können Sie beispielsweise festlegen, daß Programmteile nur dann ausgeführt werden, wenn bestimmte Bedingungen erfüllt sind, die Sie selbst definieren können. Oder Sie programmieren Schleifen, innerhalb deren Sie Programmvorgänge dynamisch wiederholen können.
Wenn-Dann-Bedingungen mit "if"
Sie können die Ausführung von Anweisungen von Bedingungen abhängig machen.
Beispiel
if(Email-Adresse == "trotzkopp@machmit.de")
{
alert("Hallo Du altes Haus, auch mal wieder auf meiner Homepage?!");
alert("Sei nichtsdestotrotz willkommen <g>!");
}
else
alert("Seien Sie willkommen auf meiner Homepage");
Mit if leiten Sie eine Wenn-Dann-Bedingung ein. Dahinter folgt, in Klammern stehend, die Formulierung der Bedingung. Um solche Bedingungen zu formulieren, brauchen Sie
Vergleichsoperatoren und in den meisten Fällen auch
Variablen. Für Fälle, in denen die Bedingung nicht erfüllt ist, können Sie einen "andernfalls"-Zweig definieren. Dies geschieht durch else.
Der Else-Zweig ist nicht zwingend erforderlich. Wenn Sie mehr als eine Anweisung unterhalb und abhängig von if oder else notieren wollen, müssen Sie die Anweisungen in geschweifte Klammern einschließen.
Einfache Entweder-Oder-Abrage
Für einfache Entweder-Oder-Bedingungen gibt es eine spezielle Syntax, die Sie alternativ zur if/else-Anweisung verwenden können.
Beispiel
var DuBistEin = (Antwort == "42") ? "Genie" : "Dummkopf";
alert(quot;Deine Antwort zeigt mir, dass Du ein quot; + DuBistEin + "bist!"
Eine einfache Entweder-Oder-Abrage wird mit einer Bedingung eingeleitet. Die Bedingung muß in Klammern stehen, im Beispiel (Antwort == 42). Dahinter wird ein Fragezeichen notiert. Hinter dem Fragezeichen wird ein Wert angegeben, der aktuell ist, wenn die Bedingung erfüllt ist. Dahinter folgt ein Doppelpunkt, und dahinter ein Wert für den Fall, daß die Bedingung nicht erfüllt ist. Da es sich um Werte handelt, die für die Weiterverarbeitung nur sinnvoll sind, wenn sie in einer Variablen gespeichert werden, wird einer solchen Entweder-Oder-Abrage in der Regel eine
Variable vorangestellt, im Beispiel die Variable DuBistEin. Der Variablen wird durch diese Art von Anweisung das Ergebnis der Entweder-Oder-Abrage zugewiesen.
Um Bedingungen zu formulieren, brauchen Sie
Vergleichsoperatoren.
Schleifen mit "while"
Mit Hilfe von while-Schleifen können Sie Programmanweisungen solange wiederholen, wie die Bedingung, die in der Schleife formuliert wird, erfüllt ist.
Beispiel
var i = 0
while(Antwort != "42")
{
alert("Ihre Antwort ist falsch! Hier kommen Sie erst rein,
wenn die Antwort richtig ist.");
start();
i++;
if(i > 5)
{
alert("Sie sind einfach zu dumm, aber
Sie kommen trotzdem rein! Ist das nicht nett?");
break;
}
}
Eine while-Schleife beginnt mit dem Wort while. Dahinter folgt, in Klammern stehend, die Bedingung. Um eine Bedingung zu formulieren, brauchen Sie
Vergleichsoperatoren. Der Inhalt der Schleife wird solange wiederholt, wie die Schleifenbedingung wahr ist. WICHTIG: Achten Sie bei solchen Schleifen immer darauf, daß es mindestens eine Möglichkeit gibt, um die Schleife nach einer angemessenen Zeit zu beenden. Andernfalls erzeugen Sie eine sogenannte "Endlosschleife", aus der der Anwender nur durch gewaltsames Beenden des WWW-Browsers herauskommt. Das ist besonders bei Online-Sitzungen im WWW sehr ärgerlich!
In der Regel enthält eine while-Schleife mehrere Anweisungen, die innerhalb der Schleife stehen. Notieren Sie alle Anweisungen innerhalb geschweifter Klammern { und }, so wie im Beispiel.
Um Endlosschleifen zu vermeiden, brauchen Sie irgendetwas, das irgendwann zu einem Ausweg aus der Schleife führt. Meistens werden zu diesem Zweck sogenannte "Zähler" definiert, im Beispiel die
Variable i. Diese Variable hat im Beispiel einen Anfangswert von 0 und wird innerhalb der Schleife bei jedem Durchgang mit der Anweisung i++; um 1 erhöht. Wenn im Beispiel der Zählerstand höher als 5 ist, wird mit Hilfe einer
Wenn-Dann-Bedingung sichergestellt, daß der Anwender die Schleife verlassen kann. Wichtig ist dabei auch die Notierung von break;. Durch dieses
reservierte Wort wird der Ausstieg aus einer Schleife sichergestellt.
Mit Hilfe von for-Schleifen vermeiden Sie die Probleme von
while-Schleifen. Die Schleifenbedingung einer for-Schleife sieht von vorneherein einen Zähler und eine Abbruchbedingung vor.
Beispiel
for(i = 1; i <= 100; i++)
{
var x = i * i;
document.write("<br>Das Quadrat von " + i + "ist " + x);
}
Eine for-Schleife beginnt mit dem Wort for. Dahinter wird, in Klammern stehend, die Schleifenbedingung formuliert. Bei der for-Schleife gilt dabei eine feste Syntax. Innerhalb der Schleifenbedingung werden drei Anweisungen notiert. In der ersten Anweisung wird ein Schleifenzähler definiert und initialisiert. Im Beispiel wird ein Zähler i definiert und mit dem Wert 1 initialisiert. Die zweite Anweisung enthält die Bedingung, ab der die Schleife beendet wird. Dazu brauchen Sie
Vergleichsoperatoren. In der dritten Anweisung wird der Schleifenzähler so verändert, daß er irgendwann die in der zweiten Anweisung notierte Bedingung erfüllt. Im Beispiel wird i bei jedem Schleifendurchgang um 1 erhöht, so daß der Wert irgendwann größer 100 ist und damit die Bedingung der zweiten Anweisung erfüllt.
Das Beispiel benutzt den Schleifenzähler, um bei jedem Schleifendurchgang das Quadrat des aktuellen Werts zu ermitteln. Das Ergebnis wird dann HTML-formatiert ins aktuelle Dokumentfenster geschrieben.
Eine spezielle Abart der for-Schleife ist die for-in-Schleife.
Beispiel
function Objekteigenschaften(Objekt, ObjName)
{
var Ergebnis = "";
for (var Eigenschaft in Objekt)
{
Ergebnis += ObjName + "." + Eigenschaft + " = " + Objekt[Eigenschaft] + "<br>";
}
return Ergebnis;
}
In diesem Beispiel ermittelt die Funktion Objekteigenschaften alle Eigenschaften eines
JavaScript-Objekts. Die ermittelten Eigenschaften sammelt die Funktion in einer HTML-formatierten Zeichenkette und gibt diese an eine aufrufende Funktion zurück.
Seitenanfang
Reservierte Wörter
JavaScript enthält eine Reihe von Schlüsselwörtern mit bestimmter Bedeutung. Diese "reservierten Wörter" sollten Sie kennen, um nicht versehentlich gleichnamige
Variablen zu definieren. Denn dies ist nicht erlaubt. Einige der reservierten Wörter der folgenden Liste ist bereits in Gebrauch, andere sind für den zukünftigen Sprachausbau von JavaScript geplant.
Liste reservierter Wörter
- abstract
- boolean
- break - Abbruch in Schleifen oder Fallunterscheidungen
- byte
- case - Fallunterscheidung
- catch
- char
- class
- const
- continue - Fortsetzung in Schleifen
- default
- do
- double
- else - Zweig in Wenn-Dann-Anweisungen
- extends
- falls
- final
- finally
- float
- for - Schleife
- function - Funktionsdefinition
- goto
- if - Wenn-Dann-Anweisung
- implements
- import
- in - bei spezieller Form der for-Schleife
- instanceof
- int
- interface
- long
- native
- new - neue Instanz eines Objekts
- null
- package
- private
- protected
- public
- return - Rückgabewert einer Funktion
- short
- static
- super
- switch
- synchronized
- this
- throw
- throws
- transient
- true
- try
- var
- void
- while - Schleife
- with
Seitenanfang
Verschachtelung und Klammerung
Unter den
Operatoren und Programmierzeichen von JavaScript gibt es eine festgelegte Rangordnung. Wenn Sie komplexe Rechenoperationen durchführen oder mehrere Bedingungen miteinander verknüpfen, gilt bei der internen Auflösung solcher kompexen Ausdrücke die folgende Rangordnung:
- . Rangstufe: ,
- . Rangstufe: = += -= *= /= %= <<= >>= >>>= &= ^= |=
- . Rangstufe: ?:
- . Rangstufe: ||
- . Rangstufe: &&
- . Rangstufe: |
- . Rangstufe: ^
- . Rangstufe: &
- . Rangstufe: == !=
- . Rangstufe: < <= > >=
- . Rangstufe: << >> >>>
- . Rangstufe: + -
- . Rangstufe: * / %
- . Rangstufe: ! ~ - ++ --
- . Rangstufe: () [] .
Mit Hilfe von Klammern, die absichtlich die unterste Rangstufe in der Prioritätshierarchie darstellen, können Sie die Rangfolge bei den Operatoren beeinflussen und Ausdrücke so bewerten, wie Sie es wünschen.
Beispiele
var OffizielleStatistik = 3.29 * 3 + 4.71;
var MeineStatistik = 3.29 * (3 + 4.71);
if( x < y || (x > z && z != y))
HaengDichAuf();
Beachten Sie beim Verschachteln von Klammern, daß die Anzahl der geöffneten und geschlossenen Klammern stets gleich sein muß, damit der gesamte Ausdruck korrekt ist. Die Verschachtelungstiefe ist beliebig.
Seitenanfang
Event-Handler
Event-Handler sind die Schnittstelle zwischen HTML-Datei und JavaScript-Code. Erst mit Hilfe von Event-Handlern ist es beispielsweise möglich, einen Befehl wie "Zeige in der Statuszeile Text X an, wenn der Anwender mit der Maus über den Verweis fährt" zu realisieren.
Beispiel
<body onLoad="PruefeAnwenderIntelligenz()">
Alle Event-Handler beginnen mit on.... Der Event-Handler onLoad bedeutet beispielsweise so viel wie "beim Laden".
Event-Handler stehen immer innerhalb von HTML-Tags. Welche Event-Handler in welchen HTML-Tags stehen können, wird weiter unten in der Liste der Event-Handler beschrieben. Event-Handler werden genau so notiert wie gewöhnliche Zusatzangaben in HTML-Tags. Hinter dem Namen des Event-Handlers fogt ohne Leerzeichen dazwischen ein Istgleichzeichen. Dahinter folgt, in Anführungszeichen eingeschlossen, der JavaScript-Befehl, der "bei Eintritt des Ereignisses" aufgerufen werden soll. In den meisten Fällen ist dies - wie auch in den Beispielen oben - der Aufruf einer
Funktion, die in der gleichen HTML-Datei innerhalb von <script language="JavaScript"> bzw. </script> definiert ist.
Liste der Event-Handler in JavaScript
onBlur:
Dieser Event-Handler bedeutet so viel wie "beim Verlassen" und kann innerhalb von Formularen folgenden HTML-Tags vorkommen:
- in Eingabefeldern: <input type="text" ... onBlur="...">
(z.B. zum Überprüfen von Eingaben)
- in mehrzeiligen Eingabefeldern: <textarea ... onBlur="...">
(z.B. zum Überprüfen von Eingaben)
- in Auswahllisten: <select ... onBlur="...">
(z.B. zum Kommentieren der getroffenen Auswahl)
onChange:
Dieser Event-Handler bedeutet so viel wie "bei Verlassen und geändertem Wert" und kann innerhalb von Formularen folgenden HTML-Tags vorkommen:
- in Eingabefeldern: <input type="text" ... onChange="...">
(z.B. zum Überprüfen von Eingaben)
- in mehrzeiligen Eingabefeldern: <textarea ... onChange="...">
(z.B. zum Überprüfen von Eingaben)
- in Auswahllisten: <select ... onChange="...">
(z.B. zum Kommentieren der getroffenen Auswahl)
onClick:
Dieser Event-Handler bedeutet so viel wie "beim Anklicken" und kann innerhalb von Verweisen und Formularen in folgenden HTML-Tags vorkommen:
- in Verweisen: <a href="" ... onClick="..."> (Hierbei ist in der Regel jedoch das
spezielle Handling bei Verweisen vorzuziehen)
- bei frei definierbaren Buttons: <input type="button" ... onClick="...">
(z.B. zum Aufruf mehrer Verweisziele gleichzeitig bei Frames)
- bei Radio- und Checkbuttons: <input type="radio" ... onClick="..."> oder
<input type="checkbox" ... onClick="...">
(z.B. zum Überprüfen der Eingaben)
- bei Ausführungsbuttons: <input type="submit" ... onClick="..."> oder
<input type="reset" ... onClick="...">
(z.B. zum Bestätigen des Vorgangs)
onFocus:
Dieser Event-Handler bedeutet so viel wie "Bei Positionieren auf dieses Element" und kann innerhalb von Formularen folgenden HTML-Tags vorkommen:
- in Eingabefeldern: <input type="text" ... onFocus="...">
(z.B. zum Kommentieren der Bedeutung des Eingabefelds)
- in mehrzeiligen Eingabefeldern: <textarea ... onFocus="...">
(z.B. zum Kommentieren der Bedeutung des Eingabefelds)
- in Auswahllisten: <select ... onChange="...">
(z.B. zum Kommentieren der Auswahlmöglichkeiten)
onLoad:
Dieser Event-Handler bedeutet so viel wie "Nach dem Laden" und kann beim Laden von HTML-Dateien folgenden HTML-Tags vorkommen:
- in Dateikörper: <body ... onLoad="...">
(z.B. zum Ausgeben von aktuellem Datum und Uhrzeit beim Aufruf)
- in Frame-Sets: <frameset ... onLoad="...">
(z.B. zum Ausgeben von aktuellem Datum und Uhrzeit in einem der Frames)
onMouseOver:
Dieser Event-Handler bedeutet so viel wie "beim Darüberfahren mit der Maus" und kann innerhalb von Verweisen in folgendem HTML-Tag vorkommen:
- in Verweisen: <a href="" ... onMouseOver="...">
(z.B. zum Kommentieren des Verweisziels)
onSelect:
Dieser Event-Handler bedeutet so viel wie "beim Markieren von Text" und kann innerhalb von Formularen folgenden HTML-Tags vorkommen:
- in Eingabefeldern: <input type="text" ... onSelect="...">
(derzeit kein Anwendungsbesipiel bekannt)
- in mehrzeiligen Eingabefeldern: <textarea ... onSelect="...">
(derzeit kein Anwendungsbesipiel bekannt)
onSubmit:
Dieser Event-Handler bedeutet so viel wie "beim Absenden" und kann bei Formularen in folgendem HTML-Tag vorkommen:
- bei Formulardefinitionen: <form ... onSubmit="...">
(z.B. um eine Bestätigungsmeldung am Bildschirm auszugeben)
onUnload:
Dieser Event-Handler bedeutet so viel wie "Nach dem Beenden" und kann beim Laden von HTML-Dateien folgenden HTML-Tags vorkommen:
- im Dateikörper: <body ... onUnload="...">
(z.B. zum Ausgeben der Zeit, die der Anwender mit der WWW-Seite zubrachte)
- in Frame-Sets: <frameset ... onUnload="...">
(z.B. zum Ausgeben der Zeit, die der Anwender mit der WWW-Seite zubrachte)
javascript:
Dies ist eigentlich kein Event-Handler, sondern eher eine Notlösung, die speziell zur Verknüpfung von Verweisen und JavaScript-Code geschaffen wurde. Beispiel:
- in Verweisen: <a href="javascript:Funktion()">
(z.B. zum Aufruf mehrer Verweisziele gleichzeitig bei Frames)
Inhaltsverzeichnis
Seitenanfang
Blättern:
Allgemeines zu JavaScript
|
Anwendungsbeispiele